package com.cs.code.util;

import com.cs.core.util.ParamUtil;
import com.cs.core.util.StringUtil;
import com.cs.code.enums.TplType;
import com.cs.code.exception.CodeException;
import com.cs.code.model.CsCode;

import java.util.List;

/**
 * <p>
 *    模板工具类
 * </p>
 * @author wind
 * @date    2025/1/22 10:56
 * @version v1.0
 */
public class TplUtil {


    private TplUtil(){

    }

    /**
     * 输出
     * @param codes
     */
    public static void out(List<CsCode> codes){
        for(CsCode code: codes){
            try {
                String name = ParamUtil.notEmpty(code.getName(), "模板文件不能为空");
                String filename = ParamUtil.notEmpty(code.getFilename(), "文件名称不能为空");
                String ext = StringUtil.getExt(name);
                if(TplType.FREEMARKER.equalSuffix(ext)){
                    FtlUtil.out(code.getDir(), name, filename, code.getData());
                }else if(TplType.VELOCITY.equalSuffix(ext)){
                    VmUtil.out(code.getDir(), name, filename, code.getData());
                }else{
                    throw new CodeException("当前模板文件不支持");
                }
            }catch (Exception e){
                throw new CodeException(e);
            }
        }
    }
}
